﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using BlueCMS.Core.Data.Query.Conditions;

namespace BlueCMS.Core.Data.Query.Tables
{
    public interface IJoinTable
    {
        //IJoinTable On(object nameOrExpression, MultiOperators op, params object[] namesOrExpressions);
        //IJoinTable On(object nameOrExpressionLHS, BinaryOperators op, object nameOrExpressionRHS);
        //IJoinTable On(object nameOrExpression, UnaryOperators op);
        IJoinTable On(Action<IStartNode> condition);

        IJoinTable As(string alias);

        IJoinTable Join(string table);
        IJoinTable CrossJoin(string table);
        IJoinTable LeftJoin(string table);
        IJoinTable RightJoin(string table);
        IJoinTable FullJoin(string table);
    }
}
